home *** CD-ROM | disk | FTP | other *** search
- property pMember, pDataFile, pFormatFile, pCols, pCWidthList, pColLinkList, pRows, pLineHeigth, pRowHeightList, pFontSize
-
- on new me, xMember, DataFile, FormatFile
- pMember = xMember
- pDataFile = DataFile
- DataText = readFile(GetTextFilePath() & pDataFile)
- DataText = RemoveBlankLines(DataText)
- pFormatFile = FormatFile
- pRows = the number of lines in DataText
- pCols = LineItemCount(line 1 of DataText)
- pFontSize = 12
- pLineHeigth = pFontSize + 4
- member(pMember).stdRowHeight = pLineHeigth
- member(pMember).rowCount = pRows
- member(pMember).columnCount = pCols
- InitWidthList()
- sizeAllCells(member(pMember), 10, pLineHeigth)
- member(pMember).tableData = InitDataAndSizeList(DataText)
- member(pMember).defaultMacTextFont = "helvetica"
- member(pMember).defaultWinTextFont = "arial"
- member(pMember).defaultHAlign = "center"
- member(pMember).defaultVAlign = "center"
- member(pMember).defaultTextSize = pFontSize
- member(pMember).borderSize = 1
- member(xMember).hCellSpacing = -1
- member(xMember).vCellSpacing = -1
- return me
- end
-
- on InitDataAndSizeList xText
- dataList = []
- pRowHeightList = [:]
- storeDelimiter = the itemDelimiter
- the itemDelimiter = TAB
- repeat with rc = 1 to pRows
- LineText = line rc of xText
- repeat with ItemCount = 1 to the number of items in LineText
- WordText = RemoveBorderSpaces(item ItemCount of LineText)
- append(dataList, ReplaceCaretwithReturn(WordText))
- if WordText contains "^" then
- setaProp(pRowHeightList, rc, pLineHeigth * 2)
- setRowHeight(member(pMember), rc, pLineHeigth * 2)
- end if
- CurrentMax = length(WordText)
- if CurrentMax > getAt(pCWidthList, ItemCount) then
- setAt(pCWidthList, ItemCount, CurrentMax)
- if CurrentMax > 20 then
- setaProp(pRowHeightList, rc, pLineHeigth * (CurrentMax / 8))
- setRowHeight(member(pMember), rc, pLineHeigth * (CurrentMax / 8))
- end if
- end if
- end repeat
- end repeat
- the itemDelimiter = storeDelimiter
- return dataList
- end
-
- on ObjAllColumnWidths me
- repeat with cc = 1 to pCols
- width = getAt(pCWidthList, cc)
- if width >= 20 then
- setColumnWidth(member(pMember), cc, 5 * 20)
- next repeat
- end if
- setColumnWidth(member(pMember), cc, 8 * width)
- end repeat
- end
-
- on ObjSetRowHeight me, HeightList
- max = count(HeightList)
- repeat with rc = 1 to max
- xRow = getPropAt(HeightList, rc)
- height = getaProp(HeightList, xRow)
- setRowHeight(member(pMember), xRow, height)
- end repeat
- end
-
- on InitWidthList
- pCWidthList = []
- repeat with rc = 1 to pCols
- append(pCWidthList, 1)
- end repeat
- end
-
- on GetObjColWidth me, xCol
- return getAt(pCWidthList, xCol)
- end
-
- on SetObjColWidth me, xCol, width
- if width > getAt(pCWidthList, xCol) then
- setAt(pCWidthList, xCol, width)
- end if
- end
-
- on GetRowHeightList me
- return pRowHeightList
- end
-
- on GetMemberNum me
- return pMember
- end
-